Multivariate Time Series এর জন্য Feature Engineering

Machine Learning - টাইম সিরিজ (Time Series) - Multivariate Time Series Modeling
185

Multivariate Time Series হল এমন টাইম সিরিজ ডেটা যেখানে একাধিক পরিবর্তনশীল (variables) একযোগে সময়ের সাথে পরিবর্তিত হয়। একাধিক ভেরিয়েবলের মধ্যে সম্পর্ক বিশ্লেষণ এবং ভবিষ্যতের পূর্বাভাস তৈরির জন্য ফিচার ইঞ্জিনিয়ারিং একটি অত্যন্ত গুরুত্বপূর্ণ পদক্ষেপ। ফিচার ইঞ্জিনিয়ারিংয়ের মাধ্যমে নতুন বৈশিষ্ট্য তৈরি করা হয় যা মডেলের পারফরম্যান্স উন্নত করতে সহায়ক।

Multivariate টাইম সিরিজ ডেটার জন্য ফিচার ইঞ্জিনিয়ারিংয়ের কয়েকটি গুরুত্বপূর্ণ পদ্ধতি নিচে আলোচনা করা হলো:


১. ল্যাগ ফিচার (Lag Features)

বর্ণনা: ল্যাগ ফিচারগুলি পূর্ববর্তী সময়ের মানের উপর ভিত্তি করে নতুন বৈশিষ্ট্য তৈরি করতে ব্যবহৃত হয়। এতে বর্তমান সময়ের জন্য পূর্ববর্তী সময়ের ডেটা পয়েন্ট ব্যবহার করা হয়, যা ভবিষ্যতের পূর্বাভাসে সহায়ক হতে পারে।

পদ্ধতি:

  • একাধিক ভেরিয়েবলের জন্য বিভিন্ন ল্যাগ তৈরি করা (যেমন: t1,t2,t3,t-1, t-2, t-3, \dots).
  • একটি টাইম সিরিজের পূর্ববর্তী পয়েন্টের মান ব্যবহার করে ভবিষ্যতের জন্য পূর্বাভাস তৈরি।

উদাহরণ: ধরা যাক, আপনি একটি বিক্রয় (Sales) এবং মার্কেটিং খরচ (Marketing Cost) এর উপর ভিত্তি করে পূর্বাভাস তৈরি করতে চান। আপনাকে বিক্রয় এবং মার্কেটিং খরচের ল্যাগ ফিচার তৈরি করতে হবে, যেমন:

  • বিক্রয়ের ল্যাগ ১, ২, ৩।
  • মার্কেটিং খরচের ল্যাগ ১, ২, ৩।

কোড উদাহরণ (Python):

import pandas as pd

# Sample data
data = pd.DataFrame({'Sales': [100, 120, 130, 110, 140],
                     'Marketing': [20, 30, 40, 35, 50]})

# Create lag features for 'Sales' and 'Marketing'
data['Sales_lag1'] = data['Sales'].shift(1)
data['Sales_lag2'] = data['Sales'].shift(2)
data['Marketing_lag1'] = data['Marketing'].shift(1)

print(data)

২. রোলিং (Rolling) স্ট্যাটিস্টিক্স

বর্ণনা: রোলিং ফিচারগুলি একটি নির্দিষ্ট উইন্ডোতে গড় (mean), গড় বিচ্যুতি (standard deviation), ম্যাক্সিমাম (maximum), মিনিমাম (minimum) ইত্যাদি পরিমাপ করতে ব্যবহৃত হয়। এটি সময়ের সাথে পরিবর্তিত ডেটার জন্য ট্রেন্ড বা সিজনালিটি বিশ্লেষণ করতে সহায়ক হতে পারে।

পদ্ধতি:

  • এক বা একাধিক ভেরিয়েবলের জন্য উইন্ডো (যেমন: 3 দিন, 7 দিন, 30 দিন) ব্যবহার করে রোলিং পরিসংখ্যান তৈরি করা।
  • এই পরিসংখ্যানগুলির মধ্যে গড়, স্নোট, বা অন্যান্য পরিসংখ্যান সংকলন করা।

উদাহরণ: ধরা যাক, আপনি ৭ দিনের গড় বিক্রয় হিসাব করতে চান, যা ভবিষ্যতের বিক্রয় পূর্বাভাসে সহায়ক হবে।

কোড উদাহরণ (Python):

data['Sales_rolling_mean'] = data['Sales'].rolling(window=3).mean()
data['Marketing_rolling_std'] = data['Marketing'].rolling(window=3).std()

print(data)

৩. উন্নত সময় বৈশিষ্ট্য (Time-based Features)

বর্ণনা: টাইম সিরিজ ডেটাতে সময়ের উপর ভিত্তি করে বিভিন্ন বৈশিষ্ট্য তৈরি করা যায়। উদাহরণস্বরূপ, দিনের সময় (Day of Week), মাস, ঋতু, বছরের সময় ইত্যাদি সময়ের নির্দিষ্ট বৈশিষ্ট্যগুলির সাহায্যে মডেলিং করা যেতে পারে।

পদ্ধতি:

  • Day of Week, Month, Quarter, Seasonality ইত্যাদি তৈরি করা।
  • সময়ের সাথে সংশ্লিষ্ট দিন, মাস, বা ঋতু অনুযায়ী বৈশিষ্ট্য তৈরি করা।

উদাহরণ:

  • ব্যবসায়িক বিক্রয় বা প্রযোজক উৎপাদন ব্যবসায়ের ঋতু, সপ্তাহ, বা মাস অনুযায়ী পারফরম্যান্স বিচারে পূর্বাভাস তৈরি করতে ব্যবহার করা হতে পারে।

কোড উদাহরণ (Python):

# Creating time-based features from a Date column
data['Date'] = pd.to_datetime(['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'])
data['Day_of_week'] = data['Date'].dt.dayofweek
data['Month'] = data['Date'].dt.month

print(data)

৪. ডিফারেন্সিং (Differencing)

বর্ণনা: ডিফারেন্সিং পদ্ধতি একটি সাধারণ ফিচার ইঞ্জিনিয়ারিং কৌশল যেখানে পূর্ববর্তী সময়ের মান এবং বর্তমান সময়ের মানের মধ্যে পার্থক্য বের করা হয়। এটি টাইম সিরিজের ট্রেন্ড এবং সিজনালিটি সরাতে ব্যবহৃত হয়, যা মডেলটিকে আরও সহজ করে তোলে।

পদ্ধতি:

  • ডেটার প্রথম পার্থক্য বা দ্বিতীয় পার্থক্য বের করা।
  • এটি স্টেশনারিটি অর্জন করতে সাহায্য করে।

উদাহরণ: বিক্রয়ের ডেটার প্রথম পার্থক্য বা দ্বিতীয় পার্থক্য বের করা।

কোড উদাহরণ (Python):

# First difference
data['Sales_diff'] = data['Sales'].diff()

print(data)

৫. স্ট্যাটিস্টিক্যাল ফিচার তৈরি (Statistical Feature Creation)

বর্ণনা: টাইম সিরিজ ডেটার উপর বিভিন্ন স্ট্যাটিস্টিক্যাল ফিচার তৈরি করা যায়, যেমন গড়, সর্বোচ্চ, সর্বনিম্ন, স্ট্যান্ডার্ড ডেভিয়েশন, skewness, kurtosis ইত্যাদি।

পদ্ধতি:

  • এই ফিচারগুলো তৈরির মাধ্যমে টাইম সিরিজের ভেরিয়েশন এবং বিলম্বিত সম্পর্ক সম্পর্কে ধারণা পাওয়া যায়।

উদাহরণ: সপ্তাহের ভিত্তিতে বিক্রয়ের গড়, সর্বোচ্চ বা সর্বনিম্ন মান বের করা।

কোড উদাহরণ (Python):

data['Sales_mean'] = data['Sales'].rolling(window=7).mean()
data['Sales_max'] = data['Sales'].rolling(window=7).max()

print(data)

সারাংশ

Multivariate Time Series ডেটার জন্য ফিচার ইঞ্জিনিয়ারিং গুরুত্বপূর্ণ কারণ এটি ডেটার উপর ভিত্তি করে নতুন বৈশিষ্ট্য তৈরি করে, যা মডেলের পূর্বাভাস এবং বিশ্লেষণ সক্ষমতা বৃদ্ধি করতে সহায়ক। ল্যাগ ফিচার, রোলিং পরিসংখ্যান, সময়ভিত্তিক বৈশিষ্ট্য, ডিফারেন্সিং এবং স্ট্যাটিস্টিক্যাল ফিচার তৈরি করা মডেলিং প্রক্রিয়া উন্নত করতে সহায়ক।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...